package com.ruoyi.system.service;

import com.ruoyi.system.domain.db.basic.BasicMaterials;
import com.ruoyi.system.domain.db.basic.BasicVehicles;
import com.ruoyi.system.domain.db.repair.VehicleRepair;
import com.ruoyi.system.domain.dto.MaterialStoreDto;
import com.ruoyi.system.domain.dto.MaterialsQuantityDto;
import com.ruoyi.system.domain.vo.repair.RepairAccendantVo;
import com.ruoyi.system.domain.vo.repair.RepairDriverVo;

import java.util.List;
import java.util.Map;

/**
 * 维修处理 Service 接口
 */
public interface IVehicleFixService {
    /**
     * 查询维修申请
     *
     * @param repairId 维修申请主键
     * @return 维修申请
     */
    public RepairAccendantVo selectVehicleFixByRepairId(Long repairId);

    /**
     * 查询维修申请列表
     *
     * @param vehicleRepair 维修申请
     * @return 维修申请集合
     */
    public List<RepairAccendantVo> selectVehicleFixList(VehicleRepair vehicleRepair);

    /**
     * 接下维修申请
     *
     * @param vehicleRepair 维修申请
     * @return 结果
     */
    public int updateVehicleFix(VehicleRepair vehicleRepair);

//    /**
//     * 批量完成维修申请
//     *
//     * @param repairIds 完成的报修申请主键集合
//     * @return 结果
//     */
//    public int finishVehicleFixByRepairIds(Long[] repairIds);

    /**
     * 完成维修申请信息
     *
     * @param vehicleRepair 维修申请，利用其主键进行修改
     * @return 结果
     */
    public int finishVehicleFixByKey(VehicleRepair vehicleRepair);

    /**
     * 维修过程中使用的材料
     */
    public int insertUseMaterialsDuringFix(List<MaterialsQuantityDto> materials);

    /**
     * 查询所有剩余材料
     */
    public List<MaterialStoreDto> selectAllMaterialStore(BasicMaterials basicMaterials);

    /**
     * 查询所有的材料
     */
    public List<BasicMaterials> selectAllMaterials();
}
